Làm cách nào để hợp nhất và sử dụng Web.debug.config
trong trình gỡ lỗi tích hợp sẵn trong studio trực quan 2010?Làm cách nào để sử dụng Web.debug.config trong máy chủ trình gỡ lỗi studio trực quan được tích hợp sẵn?
Trả lời
Đây là lỗi đã biết. Tính năng đó có thể được sử dụng ngay bây giờ chỉ như một phần của quá trình triển khai.
Hãy upvote nó, nếu bạn gặp này quá, vì vậy đây sẽ được sửa chữa càng sớm càng tốt.
Điều này thực sự khá đơn giản để làm và, tin hay không, có vẻ như đây là cách VS được thiết kế để hoạt động.
Thêm các dòng sau đúng nguyên văn trước thẻ đóng "Dự án" của tệp .csproj của dự án có chứa web.config.
<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Web\Microsoft.Web.Publishing.Tasks.dll" />
<Target Name="Transform">
<MakeDir Directories="obj\$(Configuration)" Condition="!Exists('obj\$(Configuration)')" />
<TransformXml Source="Web.Config" Transform="Web.$(Configuration).config" Destination="obj\$(Configuration)\Web.config" StackTrace="true" />
</Target>
Đặt các dòng sau đây nguyên văn cho sự kiện sau xây dựng trong thuộc tính dự án của dự án có chứa tệp web.config. Làm điều này cho mỗi cấu hình xây dựng bạn muốn các biến đổi để chạy cho.
"$(MSBUILDBINPATH)\msbuild" "$(ProjectPath)" /t:Transform /p:Configuration=$(ConfigurationName);Platform=AnyCPU
xcopy "$(ProjectDir)obj\$(ConfigurationName)\Web.Config" "$(ProjectDir)". /F /R /Y
Tôi sẽ chỉ khuyên bạn nên thêm dấu ngoặc kép xung quanh $ (ProjectDir) và $ (ProjectPath) để tránh lỗi trong trường hợp đường dẫn dự án của bạn chứa dấu cách. –
Tốt hơn nên sử dụng
Tôi có thể nhận được các biến đổi để hoạt động bằng cách tiếp cận này nhưng tôi không thể nhấn điểm ngắt của tôi. Tôi đã gỡ lỗi thiết lập để đúng nhưng tôi không bao giờ nhấn breakpoint và tôi nhận được thông báo sau "Breakpoint sẽ không được hit. Không có biểu tượng đã được nạp cho tài liệu này."Điều này chỉ xảy ra đối với cấu hình tùy chỉnh của tôi và hoạt động tốt nếu tôi đặt cấu hình của mình thành "Gỡ lỗi". Bất kỳ ý tưởng? –
Tôi biết điều này là cũ, nhưng tôi đang đối mặt với cùng một vấn đề. Chúng tôi có Test, Staging, configs sống mà thay thế thiết bị đầu cuối, dây kết nối vv từ mặc định Web.config
Tuy nhiên tôi sẽ làm như sau:
- Nhấp chuột phải vào cấu hình mong muốn chuyển đổi (ví dụ Web .Live.config)
- Bấm vào "Preview transform"
- Sao chép tất cả mọi thứ từ bên phải (đó là cách web.config trông với việc chuyển đổi)
- CTRL + A + CTRL + C
- mở Web.config file (mặc định)
- Chọn tất cả (Ctrl + A) và dán nó vào (Ctrl + V)
- Run
Nó không phải là nhiều bước và được thực hiện khá nhanh chóng khi bạn nhận được một hang của nó. Hi vọng điêu nay co ich. :)
Nếu tôi đã hiểu chính xác thì đây là một thay đổi phá hoại đối với tệp web.config gốc. Trong bối cảnh của câu hỏi, các bước này sẽ cần phải được thực hiện mỗi khi một phiên gỡ rối được bắt đầu. –
Tôi không muốn cập nhật web.config trong dự án của tôi chỉ là một tệp kết thúc trong thư mục bin, vì vậy, đây là cách tôi đã làm.
Thêm dòng sau vào cuối csproj (ngay trước thẻ dự án đóng cửa cuối cùng)
<Target Name="Transform">
<MakeDir Directories="bin" Condition="!Exists('bin')" />
<TransformXml Source="Web.Config" Transform="Web.$(Configuration).config" Destination="bin\$(TargetFileName).config" StackTrace="true" />
</Target>
Sau đó, thêm bài sau xây dựng bước
"$(MSBUILDBINPATH)\msbuild" "$(ProjectPath)" /t:Transform /p:Configuration=$(ConfigurationName);Platform=AnyCPU
này có nghĩa là khi bạn xây dựng một chuyển đổi diễn ra từ các cấu hình gỡ lỗi/phát hành để WebsiteName.Config tập tin trong thư mục bin đầu ra do đó không can thiệp với web.config chính trong dự án.
Điều này sẽ chuyển đổi cấu hình trong thư mục bin, tiếc là cấu hình này không bao giờ được sử dụng. Các cấu hình nạp thực sự là Web.Config trong thư mục dự án, không phải là một trong thư mục bin. – Mick
Tôi đã giải quyết điều này một cách đơn giản hơn, bằng cách thêm phần này vào cuối tệp .csproj, ngay trước thẻ. Điều này tương tự như câu trả lời của keitn, với sự khác biệt rằng nó không sử dụng sự kiện xây dựng bài đăng.
<Target Name="BeforeBuild">
<TransformXml Source="Web.config" Transform="Web.$(Configuration).config" Destination="Web.config" />
</Target>
Xác nhận, nó hoạt động. Nhưng hãy cẩn thận, nó sửa đổi bản sao cục bộ của Web.config. Vì vậy, nếu bạn đang sử dụng các biến đổi XSLT như RemoveAttributes, nó chắc chắn bị xóa! Hoạt động tốt với SetAttributes –
cảm ơn! công việc này cho tôi! – panicoper
Điều này đã làm chính xác những gì tôi đang tìm kiếm. Đơn giản và thẳng vào vấn đề. Không chắc tại sao tất cả các giải pháp khác phải phức tạp như vậy. –
@ologesa: nhu cầu giải pháp của bạn viết truy cập vào Web.config gốc (bạn phải check-out trong TFS). Giải pháp tốt hơn là trực tiếp tạo Web.config trong thư mục bin như keitn thực hiện điều này. Khi chúng tôi kết hợp keitn và giải pháp của bạn, chúng tôi có được điều này:
<Target Name="BeforeBuild">
<Message Text="Transforming Web.config from Web.$(Configuration).config" Importance="high" />
<MakeDir Directories="bin" Condition="!Exists('bin')" />
<TransformXml Source="Web.Config" Transform="Web.$(Configuration).config" Destination="bin\$(TargetFileName).config" StackTrace="true" />
</Target>
Sẽ được tốt đẹp nhưng như Mick nhận xét; tệp này không được sử dụng. Làm cách nào để ứng dụng hoặc IIS sử dụng tệp cấu hình này? – HMR
Sau khi đọc nhiều bài đăng tương tự và gặp sự cố với tệp không thể ghi đè hoặc web.config không thể truy cập được vì chỉ đọc đây là tôi đã làm việc cho tôi:
<Target Name="BeforeBuild" Condition="$(Configuration) == 'MyAltDebugConfiguration'">
<ItemGroup>
<OriginalWebConfig Include="$(ProjectDir)Web.config"/>
<TempWebConfig Include="$(ProjectDir)TempWeb.config"/>
</ItemGroup>
<Exec Command=""$(DevEnvDir)tf.exe" checkout "$(ProjectDir)Web.config"" />
<Copy SourceFiles="@(OriginalWebConfig)" DestinationFiles="@(TempWebConfig)" />
<TransformXml Source="$(ProjectDir)TempWeb.config"
Transform="Web.$(Configuration).config"
Destination="Web.config" />
</Target>
Ghi chú:
này chạy như mục tiêu BeforeBuild.
Tôi chỉ muốn nó chạy theo một cấu hình nhất định (một môi trường gỡ lỗi thay thế) và vì vậy đó là lý do tại sao tôi có Điều kiện. Khi triển khai thông qua triển khai web, mục tiêu xuất bản sẽ khởi động và tôi không cần mục tiêu này để chạy.
Tôi không muốn phải nhớ để kiểm tra web.config (chỉ để hoàn tác nó khi tôi làm xong) vì vậy tôi kiểm tra web.config trước khi bắt đầu chuyển đổi. Nếu bạn không sử dụng TFS, bạn có thể xóa dòng này.
Bởi vì VS (2010) \ msbuild không muốn buông web.config Nguồn tôi sử dụng một tập tin tạm thời (nhờ bài viết này để các thông tin: http://www.diaryofaninja.com/blog/2011/09/14/using-custom-webconfig-transformations-in-msbuild)
Tôi đã cố gắng thêm một lệnh để xóa TempWeb.config nhưng VS \ msbuild không muốn buông bỏ nó. Tôi có thể sống với nó vì nó không được thêm vào TFS.
- 1. Làm cách nào để bật gỡ lỗi các quy trình được lưu trữ trong studio trực quan?
- 2. Gỡ lỗi tệp thi hành trong studio trực quan
- 3. Làm cách nào để gỡ lỗi javascript trong studio trực quan khi ứng dụng asp.net được chạy dưới firefox?
- 4. Gỡ lỗi tệp xslt trong studio trực quan 2010
- 5. Slim .net: Làm cách nào để gỡ lỗi các đồ đạc thử nghiệm bằng cách sử dụng studio trực quan?
- 6. Trình gỡ lỗi trực quan Python
- 7. Có máy chủ HTTP sẵn sàng để gỡ lỗi không?
- 8. Lỗi _ITERATOR_DEBUG_LEVEL trong studio trực quan
- 9. Sử dụng sách mac được tích hợp sẵn trong máy ảnh với trình mô phỏng iOS
- 10. làm thế nào để tự động tăng khóa chính trong studio trực quan được xây dựng trong máy chủ sql?
- 11. sử dụng .htaccess với máy chủ được tích hợp sẵn php5.4
- 12. Làm cách nào để sử dụng xdebug để gỡ lỗi chỉ một máy chủ ảo?
- 13. Làm cách nào để xem thông tin về HWND trong studio trực quan khi đang gỡ lỗi?
- 14. Sử dụng studio trực quan để xác định rằng bản dựng được cập nhật là gì?
- 15. Cách gỡ lỗi ứng dụng asp.net trên máy chủ trực tiếp
- 16. Làm cách nào để sử dụng các hàm trợ giúp được tích hợp sẵn của CoffeeScript?
- 17. Làm cách nào để sử dụng trình gỡ lỗi gdb MinGW để gỡ lỗi chương trình C++ trong Windows?
- 18. hướng dẫn sử dụng studio trực quan
- 19. Sử dụng máy chủ Web IIS cục bộ để gỡ lỗi
- 20. Tôi làm cách nào để định cấu hình studio trực quan để chạy thử nghiệm xUnit.net?
- 21. Làm thế nào để xác định thời gian chạy khi ứng dụng C++ của bạn có trình gỡ lỗi studio trực quan được đính kèm?
- 22. Làm thế nào để gỡ lỗi các dự án thư viện lớp bên ngoài trong studio trực quan?
- 23. Làm thế nào để gỡ lỗi mã CUDA bằng cách sử dụng Visual Studio 2008?
- 24. Máy chủ có được tích hợp Flask an toàn để sử dụng trong sản xuất không?
- 25. Làm cách nào để tránh lỗi hết thời gian chờ trong khi gỡ lỗi dịch vụ web trong studio trực quan 2008
- 26. Trình gỡ lỗi VBScript
- 27. Làm cách nào để đính kèm quy trình vào trình gỡ lỗi trong Visual Studio?
- 28. Làm cách nào để tải trình gỡ lỗi trực quan trên Mac OS khi tôi không có dự án Xcode?
- 29. Làm cách nào để sử dụng hỗ trợ đa ngôn ngữ được tích hợp sẵn của Delphi?
- 30. Máy ảnh giả lập tích hợp sẵn lỗi ứng dụng trong Froyo/2.2?
Để ghi lại đây không phải là lỗi, theo thiết kế của nó. Các tệp này dành cho gói/xuất bản. Nhưng điều đó không nên ngăn cản bất kỳ ai bỏ phiếu cho mục đó. –
@Sayed Tôi đồng ý với bạn :) – stacker
Vâng với tôi đó là một lỗi, nếu không mục đích của một Debug/phát hành biến đổi trên một máy chủ địa phương là gì? Đôi khi thiết kế có sai sót, điều đó không có nghĩa là đúng :) –