开发者

C# exclude complete form / usercontrol by using compiler constants

I'd like to exclude / include a complete form in my project. But when I add the needed #if CONST and #endif the compiler complains about resou开发者_如何学JAVArces that may get wrong names.

warning MSB3042: A namespace or class definition was found within a conditional compilation directive in the file "Form1.cs". This may lead to an incorrect choice for the manifest resource name for resource "Form1.resx".

What does this mean?

And how do I fix it?


  • Explanation: A normal Form (created from a Template) consists of 2 .cs files and a .resx file. By eliminating the Form1 class you 'orphan' the resources.

  • Workarounds:

    1. Make a simpler Form without resource file.
    2. use a #else tag to create empty stubs for the Form1 class
    3. Forget about the idea and only eliminate the (few) points where the rest of the program uses the Form.

I favor 3, what benefits do you expect from removing the Form?


If you did not set images and you don't use the resx for translations (i.e. your form is not localizable) try to remove your Form1.resx.


Move your #if CONST / #endif region, so that it is within the derived form class declaration encompassing the entire contents of the partial class in Form1.cs. The default constructor will takeover, and your warning will go away.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜