2014-02-21 2 views
0

У меня есть веб-сайт, на котором я должен перейти на наши серверы с небольшим количеством изменений кода. Вот сценарий:Изменения кода в исходном файле (.cs) не отражены в приложении

У нас есть сайт, который был написан другим поставщиком, и теперь нам нужно перенести этот сайт на другой сервер с некоторыми незначительными изменениями кода. Проблема в том, что у них есть настраиваемая dll sat Test.dll, в которой есть файл say Person.cs, теперь этот файл также присутствует в качестве исходного файла на веб-сайте (Project), который требуется, потому что мы должны внести в него изменения или возможно, придется в будущем. Но когда я вношу изменения в исходный код Person.cs, я не вижу этих изменений, отраженных в моем приложении, потому что он собирает файл Person.cs из dll, который после чтения некоторых онлайн-сообщений и документов, как работает .net хотя java работает по-другому.

Я очень новичок в .net, поэтому не могу придумать решение здесь, любые комментарии или предложения будут очень благодарны.

+0

Если я понимаю, что вы исправить, вы должны создать свой проект с тем изменением, чтобы получить dll-файл и заменить старый на новый. IIS заметит, что dll изменено и перезагрузите его. – Fedor

+1

Его сайт не является проектом, поэтому изменения исходного кода не будут добавлены в dll –

+0

Итак, у вас есть приложение ASP.NET MVC, которое было успешно развернуто, и теперь вы хотите внести в него некоторые изменения, но у вас нет полного VS _solution_ (или _project_), только набор исходных файлов * .cs? – Fedor

ответ

1

Если это сайт проект, код C# скомпилирован во время сборки проекта. Чтобы получить ваши изменения, вам нужно будет перестроить проект, создав новые двоичные файлы.

+0

Это веб-сайт, а не веб-проект, поэтому, когда я делаю перестроение, новая dll не генерируется, также я думаю, что это может показаться странным, но почему у вас есть исходный файл и DLL с тем же файлом, вы должны иметь файлы в dll, которые вы не хотите изменять в том же проекте/веб-сайте, только в java. –

0

Возможно, что ваш поставщик не предоставил вам файл с разрешением (.sln). Вероятно, вам нужно начать с чистого веб-сайта. Трудно определить, является ли это веб-формой или сайтом mvc из-за ограниченного объема информации.

+0

На самом деле OP четко указала, что это проект ASP.NET _website_ – Fedor

+1

, это будет звучать странно, но это проект MVC, но у него нет .csproj, поэтому мне пришлось создать веб-сайт, а затем удалить все файлы i имел –

+0

К сожалению, это было не так ясно, как я думал – Fedor

0

Я создал веб-сайт для размещения службы WCF в IIS. Я создал профиль для публикации веб-сайта и упростил свою жизнь. Я не хотел перетаскивать 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> 

Линия, убедитесь, что код компилируется до публикации:

<PrecompileBeforePublish>True</PrecompileBeforePublish> 
Смежные вопросы