<p>I have a .NET 3.5 (target framework) web application.  I have some code that looks like this:</p>

<pre><code>public string LogPath { get; private set; }
public string ErrorMsg { get; private set; }
</code></pre>

<p>It's giving me this compilation error for these lines:</p>

<pre><code>"must declare a body because it is not marked abstract or extern."
</code></pre>

<p>Any ideas?  My understanding was that this style of property was valid as of .NET 3.0.</p>

<p>Thanks!</p>

<hr>

<p>The problem turned out to be in my .sln file itself.  Although I was changing the target version in my build options, in the .sln file, I found this:</p>

<pre><code>TargetFramework = "3.0"
</code></pre>

<p>Changing that to "3.5" solved it.  Thanks, guys!</p>

It is, as long as you put
abstract
in front, or implement the methods.
```
```
public abstract string LogPath { get; private set; }
public abstract string ErrorMsg { get; private set; }
```
```
See
http://forums.asp.net/t/1031651.aspx