更改项目名称和命名空间后未定义c#属性/设置

更改项目名称和命名空间后未定义c#属性/设置,c#,.net,winforms,projects-and-solutions,C#,.net,Winforms,Projects And Solutions,我正在更新一个几年前构建的旧应用程序,全局名称空间和project.cs文件以及主表单都命名为email2case\u winForm 我想改变这一点(同时以面向对象的方式重建应用程序,使其更加灵活,并能够重用代码),因此将名称改为email2case 但现在我在编译时遇到了问题,因为在读取项目的设置和属性时,找不到这些成员 下面是我试图用来读取属性的代码示例。设置: XElement x = XElement.Load(email2case.Properties.Settings.Defaul

我正在更新一个几年前构建的旧应用程序,全局名称空间和project.cs文件以及主表单都命名为
email2case\u winForm

我想改变这一点(同时以面向对象的方式重建应用程序,使其更加灵活,并能够重用代码),因此将名称改为
email2case

但现在我在编译时遇到了问题,因为在读取项目的设置和属性时,找不到这些成员

下面是我试图用来读取属性的代码示例。设置:

XElement x = XElement.Load(email2case.Properties.Settings.Default.e2cConfigFile);
而这一个的编译器错误是:

“email2case.email2case”不包含“属性”的定义

下面是类如何从全局设置中读取数据:

this.Url = global::email2case.Settings.Default.email2case_sforce_SforceService;
而这一个的编译器错误是:

命名空间“email2case”中不存在类型或命名空间名称“Settings”(是否缺少程序集引用?)

我有一种预感,这个问题是由
app.Config
中的定义引起的,这里是:

<configuration>
    <configSections>
        <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
            <section name="email2case.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
            <section name="email2case.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
        </sectionGroup>
        <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
            <section name="email2case.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
        </sectionGroup>
    </configSections>
    <applicationSettings>
      <email2case.Properties.Settings>
        <setting name="email2case_sforce_SforceService" serializeAs="String">
          <value>https://login.salesforce.com/servi...</value>
        </setting>
        <setting name="e2cConfigFile" serializeAs="String">
          <value>C:\email2case\data\e2cConfig.xml</value>
        </setting>
      </email2case.Properties.Settings>
      <email2case.Properties.Settings>
        <setting name="email2case_sforce_SforceService" serializeAs="String">
          <value>https://login.salesforce.com/serv...</value>
        </setting>
      </email2case.Properties.Settings>
    </applicationSettings>
    <system.serviceModel>
        <bindings/>
        <client/>
    </system.serviceModel>
    <startup>
      <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup><userSettings>
        <email2case.email2case.Properties.Settings>
            <setting name="enableEWSTrace" serializeAs="String">
                <value>False</value>
            </setting>
            <setting name="attachmentsPathLocal" serializeAs="String">
                <value>C:\email2case\temp\</value>
            </setting>
            <setting name="eTracePath" serializeAs="String">
                <value>C:\email2case\Trace\</value>
            </setting>
            <setting name="ewsTraceKeepDays" serializeAs="String">
                <value>1</value>
            </setting>
        </email2case.email2case.Properties.Settings>
    </userSettings>
</configuration>

https://login.salesforce.com/servi...
C:\email2case\data\e2cConfig.xml
https://login.salesforce.com/serv...
假的
C:\email2case\temp\
C:\email2case\Trace\
1.
我不想在不知道正确方法的情况下编辑它,那么我应该使用什么代码来引用我的属性和设置呢

或者我应该改变它们在app.config中的定义方式吗

将光标放在要更改的位置(名称空间、方法),然后按F2键,将打开一个新窗口,只需按照说明操作即可


手动重命名方法或命名空间将带来更多错误,因为项目已生成,因此当我们运行项目时,visual studio会自动生成设计器代码并需要对该文件进行更改。该问题由两个问题引起:

  • 更改名称空间时,需要在应用程序设置中执行,而不是只进入代码并用
    新名称空间替换
    旧名称空间
  • 错误更改代码中的命名空间后,代码中的命名空间与应用程序设置不同步,并且app.config
  • 解决办法是

  • 在适当的位置更改命名空间(在项目属性>应用程序>默认命名空间中)
  • 清理、重建、保存项目
    • 如有必要,请按照本SO帖子中的说明重新生成app.config文件:
  • 使用正确的代码参考代码中的设置和属性。
    • 在我的例子中,这是
      属性。
      而不是
      email2case.Properties。

  • 我也遇到了同样的问题(在更改名称空间的大小写之后),并阅读了以下内容:


    在我的例子中,问题是
    %LocalAppData%\
    存在于旧的外壳中,即使在开发过程中,设置也是从该位置读取的。我删除了目录,所有内容都恢复了工作状态。

    您是否在项目中看到.settings文件。在visual Studio中转到project->Properties->settings时,您看到了什么studio?@gideon:在正确更改全局名称空间、保存、重建后,正确的属性引用是
    properties.
    ,而不是
    email2case.properties.
    …你认为我应该添加自己的答案,还是关闭/删除问题?你应该回答你的问题,添加细节并接受answ呃(两天后系统会允许的)@gideon:谢谢我添加了它,请你看看它是否有意义,是否对其他人有帮助?是的:)太好了!这是一个有用的提示,但是请你花点时间补充一些关于如何解决问题的信息,以及问题是什么,然后我可以投票表决。作为一句话,它实际上应该只是一个评论