Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 源文件(.cs)中的代码更改未反映在应用程序中_C#_.net_Dll - Fatal编程技术网

C# 源文件(.cs)中的代码更改未反映在应用程序中

C# 源文件(.cs)中的代码更改未反映在应用程序中,c#,.net,dll,C#,.net,Dll,我有一个网站,我必须迁移到我们的服务器很少代码更改。以下是场景: 我们有一个由其他供应商编写的网站,现在我们必须将该网站迁移到另一个服务器,只需对代码进行一些小的更改。问题是他们有一个自定义的dll sat Test.dll,其中有一个文件,比如Person.cs,现在该文件也作为源文件存在于网站(项目)中,这是必需的,因为我们必须对其进行更改,或者将来可能不得不对其进行更改。但是当我对Person.cs的源代码进行更改时,我看不到这些更改反映在我的应用程序中,因为它是从dll中提取Person

我有一个网站,我必须迁移到我们的服务器很少代码更改。以下是场景:

我们有一个由其他供应商编写的网站,现在我们必须将该网站迁移到另一个服务器,只需对代码进行一些小的更改。问题是他们有一个自定义的dll sat Test.dll,其中有一个文件,比如Person.cs,现在该文件也作为源文件存在于网站(项目)中,这是必需的,因为我们必须对其进行更改,或者将来可能不得不对其进行更改。但是当我对Person.cs的源代码进行更改时,我看不到这些更改反映在我的应用程序中,因为它是从dll中提取Person.cs文件的,在阅读了一些在线帖子和文档后,.net是如何工作的,尽管java是以另一种方式工作的


我对.net非常陌生,因此在这里想不出解决方案。任何评论或建议都将不胜感激。

如果是web项目,c代码将在项目构建期间编译。要使更改生效,您需要重建项目,生成新的二进制文件。

可能发生的情况是您的供应商没有向您提供解决方案(.sln)文件。你可能需要从一个空白的网站开始。由于信息量有限,很难确定这是webforms还是mvc站点

我创建了一个网站,在IIS中托管WCF服务。我创建个人资料来发布网站,让我的生活变得轻松。我不想将DLL从WCF服务拖放到网站上,所以我在每次发布之前都要编译代码

配置文件的代码如下所示:

<?xml version="1.0" encoding="utf-8"?>

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
    <LastUsedPlatform>x86</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish />
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <publishUrl>C:\TestWebsite</publishUrl>
    <DeleteExistingFiles>True</DeleteExistingFiles>
    <PrecompileBeforePublish>True</PrecompileBeforePublish>
    <EnableUpdateable>True</EnableUpdateable>
    <DebugSymbols>True</DebugSymbols>
    <WDPMergeOption>DonotMerge</WDPMergeOption>
  </PropertyGroup>
</Project>

文件系统
释放
x86
真的
假的
C:\test网站
真的
真的
真的
真的
不要合并
确保在发布之前编译代码的行:

<PrecompileBeforePublish>True</PrecompileBeforePublish>
True

如果我理解您的意思是正确的,您应该使用这些更改构建项目,以便获取dll文件并用新文件替换旧文件。IIS将注意到dll已更改并重新加载。这是一个网站而不是一个项目,因此源代码更改不会添加到dllSo您有成功部署的ASP.NET MVC应用程序,现在您想对其进行一些更改,但您没有完整的VS解决方案(或项目),只有一组源*.cs文件?是,唯一要添加的是,我有一组源文件(.CS),但它们也是dll的一部分(不知道为什么),但我的猜测是,由于mvc项目是一个web项目,在编译源代码时创建dll,但是他们没有给我们每个asp.net项目附带的.csproj文件。非常混乱我知道这是一个网站而不是一个web项目,所以当我重建时,新的dll没有生成,我也认为这听起来很奇怪,但是为什么你会有一个源文件和一个具有相同文件的dll,你应该在dll中有一些文件,你不想在同一个项目/网站中修改,只是在java中。实际上,OP明确指定它是ASP.NET网站项目这听起来很奇怪,但它是一个MVC项目,但它没有.csproj,所以我必须创建一个网站,然后放入所有文件